#include "CR.hpp"
#include "../comm/httplib.h"
#include <stdlib.h>
using namespace ns_CR;
using namespace httplib;
void Usage(std::string proc)
{
    std::cerr << "Usage:\n\t"<<proc<<" port" << std::endl;
}
int main(int argc,char* argv[])
{
    if(argc != 2)
    {
        Usage(argv[0]);
        return -1;
    }
    Server svr;
    // svr.Get("/",[](const Request& req,Response& resp){
    //     resp.set_content("hello httplib Test,我是一句中文","text/plain;charset=utf-8");
    // });
    svr.Post("/complie_and_run",[](const Request& req,Response& resp){
        std::string in_json = req.body;
        std::string out_json;
        if(!in_json.empty())
        {
            ComplieAndRun::Start(in_json,&out_json);
            resp.set_content(out_json,"application/json;charset=utf-8");
        }
    });
    svr.listen("0.0.0.0",atoi(argv[1]));
    //先形成一个json字符串
//     Json::Value in_value;
//     std::string in_json;//待处理的字符串
//     //手动处理
//     in_value["code"] = R"(#include <iostream>
// int main()
// {
//     std::cout << "我是客户端发送来的源代码" << std::endl;
//     while(1){}
//     return 0;
// }
// )";

//     in_value["input"] = "";
//     in_value["cpu_limit"] = 1;
//     in_value["mem_limit"] = 1024 * 30;//如果内存限制为30MB，这个地方的单位是KB，需要转化

//     //代码走到这一步，可以得到结构化字符串
//     Json::StyledWriter writer;
//     in_json = writer.write(in_value);
//     //in_json是结构化字符串
    
//     std::string out_json;
//     ComplieAndRun::Start(in_json,&out_json);

//     //传进去的序列化数据
//     std::cout << in_json << std::endl;
//     //给客户的返回的out_json
//     std::cout << std::endl;
//     std::cout << out_json << std::endl;
    return 0;
}